// 41. 缺失的第一个正数
// 困难
// 相关标签
// 相关企业
// 提示
// 给你一个未排序的整数数组 nums ，请你找出其中没有出现的最小的正整数。
// 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。
// 示例 1：
// 输入：nums = [1,2,0]
// 输出：3
// 解释：范围 [1,2] 中的数字都在数组中。
// 示例 2：
// 输入：nums = [3,4,-1,1]
// 输出：2
// 解释：1 在数组中，但 2 没有。
// 示例 3：
// 输入：nums = [7,8,9,11,12]
// 输出：1
// 解释：最小的正数 1 没有出现。

//const nums = [3,4,-1,1]
const nums = [1,2,0]
//const nums = [7,8,9,11,12]

var firstMissingPositive = function(nums) {
     let  len = nums.length;
     const arr1=nums.sort((a,b)=>a-b);
     const arr3=arr1.filter(item=>item>0);
     const len3=arr3.length;
     console.log(arr3,'arr3')
     let max=arr3[len3-1];
     //console.log(max)

     const arr2 =createArrayWithLoop(max);
     console.log(arr2,'arr2')
     if(arr3.length>=arr2.length){
         return arr2[arr2.length-1]+1;
     }
     for(let i=0;i<arr2.length;i++){
        //console.log(arr3.indexOf(arr2[i]))
         if(arr3.indexOf(arr2[i])==-1){
            console.log(arr2[i],'arr2[i]')
            return arr2[i]
         }
     }
     
};

function createArrayWithLoop(length){
    let arr = [];
    for(let i = 1; i <=length; i++){
        arr.push(i);
    }
    return arr;
}
console.log(firstMissingPositive(nums))
//console.log(createArrayWithLoop(5))